<?php

class RecibosocioController extends GxController {


	public function actionView($id) {
		$this->render('view', array(
			'model' => $this->loadModel($id, 'ReciboSocio'),
		));
	}

	public function actionCreate() {
		$model = new ReciboSocio;


		if (isset($_POST['ReciboSocio'])) {
			$model->setAttributes($_POST['ReciboSocio']);

			if ($model->save()) {
				if (Yii::app()->getRequest()->getIsAjaxRequest())
					Yii::app()->end();
				else
					$this->redirect(array('view', 'id' => $model->ReciboSocioId));
			}
		}

		$this->render('create', array( 'model' => $model));
	}
	
	public function actionCreatefrom($id) {
		$model = new ReciboSocio;
		$model->SocioId = $id;
	
		if (isset($_POST['ReciboSocio'])) {
			$model->setAttributes($_POST['ReciboSocio']);
	
			if ($model->save()) {
				if (Yii::app()->getRequest()->getIsAjaxRequest())
					Yii::app()->end();
				else
					$this->redirect(array('view', 'id' => $model->ReciboSocioId));
			}
		}
	
		$this->render('create', array( 'model' => $model));
	}
	
	public function actionUpdate($id) {
		$model = $this->loadModel($id, 'ReciboSocio');


		if (isset($_POST['ReciboSocio'])) {
			$model->setAttributes($_POST['ReciboSocio']);

			if ($model->save()) {
				$this->redirect(array('view', 'id' => $model->ReciboSocioId));
			}
		}

		$this->render('update', array(
				'model' => $model,
				));
	}

	public function actionDelete($id) {
		if (Yii::app()->getRequest()->getIsPostRequest()) {
			$this->loadModel($id, 'ReciboSocio')->delete();

			if (!Yii::app()->getRequest()->getIsAjaxRequest())
				$this->redirect(array('admin'));
		} else
			throw new CHttpException(400, Yii::t('app', 'Your request is invalid.'));
	}

	public function actionIndex() {
		$dataProvider = new CActiveDataProvider('ReciboSocio');
		$this->render('index', array(
			'dataProvider' => $dataProvider,
		));
	}

	public function actionAdmin() {
		$model = new ReciboSocio('search');
		$model->unsetAttributes();

		if (isset($_GET['ReciboSocio']))
			$model->setAttributes($_GET['ReciboSocio']);

		$this->render('admin', array(
			'model' => $model,
		));
	}

	public function actionGenerarrecibo($idDeuda, $idSocio,$dAnio, $dMes) {
		if (isset($_POST['selectedIds']))
		{
			$tipoMovimiento=TipoMovimiento::model()->findByPk(1);//El 1 es Movimiento de INGRESO
			$esSeguroGenerarRecibo=false;
			foreach ($_POST['selectedIds'] as $id){
				$modelMovCuentaSocio= MovCuentaSocio::model()->findByPk($id);
				if (! $modelMovCuentaSocio->getFaltagenerarrecibo()){
					$esSeguroGenerarRecibo=true;
				}
			}
			if ($esSeguroGenerarRecibo==true){
				$model = new ReciboSocio;
				$Numero = Yii::app()->db->createCommand("SELECT MAX(ReciboSocioId) FROM recibosocio")
										->queryScalar();
				$model->Numero = $Numero +1;						
				$model->Fecha =date("Y-m-d H:i");
				$model->SocioId=$idSocio;
				$model->Anio= $dAnio;
				$model->Mes= $dMes;
				$model->UsuarioConfecciono=Yii::app()->user->getId();
	
				if ($model->save()) {//
					//if (Yii::app()->getRequest()->getIsAjaxRequest()){
					foreach ($_POST['selectedIds'] as $id){		
								$modelMovCuentaSocio= MovCuentaSocio::model()->findByPk($id);
								$modelMovCuentaSocio->ReciboSocioId=$model->ReciboSocioId;
								$concepto= Concepto::model()->setAttributes($modelMovCuentaSocio->concepto);
								If ($modelMovCuentaSocio->concepto->tipoMovimiento->TipoMovimientoId==1){
									$modelMovCuentaSocio->Haber=$modelMovCuentaSocio->Debe; //Es un Ingreso
									$modelMovCuentaSocio->update(array('ReciboSocioId','Haber'));										
								}else{
									$modelMovCuentaSocio->Debe=$modelMovCuentaSocio->Haber; //Es un Egreso
									$modelMovCuentaSocio->update(array('ReciboSocioId','Debe'));
								}
								
								//Impacto en la cuenta del concepto
								$modelMovCuenta = new  MovimientosCuenta;										
								$modelMovCuenta->Fecha=$model->Fecha;
								$modelMovCuenta->CuentaId=$modelMovCuentaSocio->concepto->CuentaId;
								$modelMovCuenta->TipoMovimientoId=$modelMovCuentaSocio->concepto->tipoMovimiento->TipoMovimientoId;
								$modelMovCuenta->Monto=$modelMovCuentaSocio->Debe;
								$modelMovCuenta->UsuarioIntervino=Yii::app()->user->getId();
								$modelMovCuenta->ReciboSocioId=$model->ReciboSocioId;							
								$modelMovCuenta->save();
					};
					$this->redirect(array('view', 'id' => $model->ReciboSocioId));
				}		
			}			
		}
		$this->redirect(array('deudasocio/view', 'id' => $idDeuda));
	}
	
}